ros中的坐标系

您所在的位置:网站首页 Roll world roof fun ros中的坐标系

ros中的坐标系

2024-01-09 15:44| 来源: 网络整理| 查看: 265

转载自 https://www.jianshu.com/p/935e0e954026 一般来说 绕 Z轴 旋转,称之为 航向角,使用yaw表示; 绕 X轴 旋转,称之为 横滚角,使用roll表示; 绕 Y轴 旋转,称之为 俯仰角,使用pitch表示; 举例: 我们通常用来表述小车运动的二维平面指的是 X-Y平面,也就是X轴和Y轴张成的平面,在这个平面中,用来描述 小车转弯的角就是绕Z轴的旋转,也就是经常说的航向角。Z轴朝上,所以按照右手法则可以知道小车向 左转为正,右转为负。

ROS中常见的坐标系 在ROS中,定义了许多坐标系,这里介绍几个常见的坐标系,为了比较直观的解释这几个坐标系,我们使用一个小例子来说明。 在这里插入图片描述

在刚开始的时候,按照之前坐标轴的定义,将小车的朝向方向作为X轴,正左方标识为Y轴,并将小车所在的位置定义为原点,如图(1-1)。 在这里插入图片描述

如图(1-2),在原点插一面小旗子,并控制小车行驶一段距离,这个时候我们能得到三个位置信息

使用测量工具测量小车相对旗子的位置,在X轴正方向距原点3个单位,在Y轴正方向距原点2个单位 小车安装里程计,记录自己前进3个单位,并向左平移了2个单位 小车使用激光雷达数据与已有地图进行匹配,并结合里程计数据,将数据融合得到小车的位置在X轴正方向3个单位,在Y轴正方向2个单位 在上面的例子中,三个坐标值都相同。但真实情况下,三个坐标值由于测量误差或者其他原因导致坐标值并不相同,然而这三个坐标都用来表示小车中心在空间中的位置,这就引出了不同坐标系

对于第一种测量,称之为真实坐标系,这是一个理想的坐标系,即我们拥有一种绝对准确的测量方式获得小车相对于地图原点的坐标,但这种坐标系在真实情况下是不存在的。 对于第二种测量,称之为里程计坐标系,在这个坐标系中得到的测量值通常是基于轮速里程计,视觉里程计或者惯性单元得到的。在这个坐标系中,新坐标值通常是根据前一个时刻坐标得到的,一般使用odom来表示。 优点: 坐标值是连续的并且以平稳的方式演变,没有离散的跳跃。 缺点: 测量产生的误差会累计。 适合: 短时程相对定位 对于第三种测量,称之为地图坐标系,在这个坐标系中得到坐标值通常是通过传感器的数据重新计算或测量得到的,一般使用map来表示。 优点:由于每次得到的坐标点都是重新测量计算得到的,累计误差影响较小 缺点: 坐标数据会有跳变。 适合: 长时程绝对定位 假设对于上面描述的三种测量是以下结果

真实坐标系:坐标值为(3, 2) 里程计坐标系:坐标值(3, 1) 地图坐标系:坐标值(3.5, 2.5) 在这里插入图片描述

那么坐标系表示如图(1-3)

模拟器使用的坐标系 模拟器除了沿袭上面讲述的两个坐标系(odom, map)之外,同时还引入了真实坐标系(real_map)。

由于是模拟器,所以可以精确的知道小车的真实位置,在autolabor_simulation_base模块中,会发布两种坐标系的坐标

小车在odom坐标系下的坐标:发布的坐标是模拟轮速里程计产生的,我们可以在autolabor_simulation_base模块中设置轮速里程计噪音,用于模拟真实情况。但由于存在噪音,所以在odom坐标系下的小车坐标并不等于其真实位置。 小车在real_map坐标系下的坐标:发布的坐标是根据上层控制速度结合小车底层限制(小车的最大速度,加速度等信息)产生的,在这个坐标系下会排除轮速里程计产生的噪声,输出小车的真实坐标。 对于map坐标系下的坐标,并不由模拟器产生,而是通过上层的定位算法得到的,这部分在后面的讲解中可以看到。

为什么引入真实坐标系 我们往往希望找到一种量化的方法去评价算法的优劣,这样对于调整算法或者某些参数有很大的帮助。在使用真实机器人去测试,需要借助外界测量工具去测量,并且需要想一些巧妙的办法让这些测量合理并且准确。但使用模拟器就能够比较方便的解决这个问题。

模拟器能对传感器数据添加噪声,从而来模拟真实情况。将有噪音的数据带入算法中,如果得到的数据很接近“真实数据”,那么我们就能认为这个算法比较好。

比如我们使用AMCL算法对小车进行定位,其中里程计和激光雷达数据都带有噪音,这个时候我们可以得到在map坐标系下的坐标,同时我们能得到小车在real_map坐标系下的坐标,我们就可以使用这两个坐标的距离来判断定位的准确性。

在后面的实验中,我们可以使用这个特性对一些算法进行评测。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3